package org.jeecg.modules.wlhy.hyvehicle.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;

/**
 * @Description: 车辆管理
 * @Author: duanlikao
 * @Date:   2020-12-05
 * @Version: V1.0
 */
@Data
@TableName("hy_vehicle")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="hy_vehicle对象", description="车辆管理")
public class HyVehicleReq implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private String id;
	/**车辆牌照号*/
	@Excel(name = "车辆牌照号", width = 15)
    @ApiModelProperty(value = "车辆牌照号")
	@NotEmpty(message = "车辆牌照号不允许为空")
    private String vehicleNumber;
	/**车牌颜色代码*/
	@Excel(name = "车牌颜色代码", width = 15, dicCode = "vehicle_plate_color_code")
	@Dict(dicCode = "vehicle_plate_color_code")
    @ApiModelProperty(value = "车牌颜色代码")
//	@NotEmpty(message = "车牌颜色不允许为空")
    private String vehiclePlateColorCode;
	/**车辆父类型代码*/
	@Excel(name = "车辆父类型代码", width = 15, dictTable = "hy_vehicle_type", dicText = "text", dicCode = "id")
	@Dict(dictTable = "hy_vehicle_type", dicText = "text", dicCode = "id")
    @ApiModelProperty(value = "车辆父类型代码")
    private String vehiclePtype;
	/**车辆类型代码*/
	@Excel(name = "车辆类型代码", width = 15) //, dictTable = "hy_vehicle_type", dicText = "text", dicCode = "id"
//	@Dict(dictTable = "hy_vehicle_type", dicText = "text", dicCode = "id")
    @ApiModelProperty(value = "车辆类型代码")
	//@NotEmpty(message = "车辆类型不允许为空")
    private String vehicleType;
	/**长*/
	@Excel(name = "长", width = 15)
    @ApiModelProperty(value = "长")
    private String vehicleLong;
	/**宽*/
	@Excel(name = "宽", width = 15)
    @ApiModelProperty(value = "宽")
    private String vehicleWidth;
	/**高*/
	@Excel(name = "高", width = 15)
    @ApiModelProperty(value = "高")
    private String vehicleHeight;
	/**车辆所属(1个人2车队)*/
	@Excel(name = "车辆所属(1个人2车队)", width = 15, dicCode = "belong_type")
	@Dict(dicCode = "belong_type")
    @ApiModelProperty(value = "车辆所属(1个人2车队)")
    private String belongType;
	/**所属车队*/
	@Excel(name = "所属车队", width = 15, dictTable = "hy_carrier", dicText = "carrier_name", dicCode = "id")
	@Dict(dictTable = "hy_carrier", dicText = "carrier_name", dicCode = "id")
    @ApiModelProperty(value = "所属车队")
    private String carrierId;
	/**driverId*/
	@Excel(name = "所属司机", width = 15, dictTable = "hy_driver", dicText = "driver_name", dicCode = "id")
	@Dict(dictTable = "hy_driver", dicText = "driver_name", dicCode = "id")
    @ApiModelProperty(value = "所属司机")
	//@NotEmpty(message = "所属司机不允许为空")
    private String driverId;
	/**行驶证档案编号*/
	@Excel(name = "行驶证档案编号", width = 15)
    @ApiModelProperty(value = "行驶证档案编号")
    private String drivingLicenseNum;
	/**行驶证(正面)*/
	@Excel(name = "行驶证(正面)", width = 15)
    @ApiModelProperty(value = "行驶证(正面)")
	@NotEmpty(message = "行驶证(正面)不允许为空")
    private String drivingLicenseImg;
	/**行驶证副页*/
	@Excel(name = "行驶证副页", width = 15)
    @ApiModelProperty(value = "行驶证副页")
	@NotEmpty(message = "行驶证副页不允许为空")
    private String drivingLicenseImg2;
	/**品牌型号*/
	@Excel(name = "品牌型号", width = 15)
    @ApiModelProperty(value = "品牌型号")
    private String brandName;
	/**所有人*/
	@Excel(name = "所有人", width = 15)
    @ApiModelProperty(value = "所有人")
	//@NotEmpty(message = "车辆所有人不允许为空")
    private String owner;
	/**使用性质*/
	@Excel(name = "使用性质", width = 15)
    @ApiModelProperty(value = "使用性质")
//	@NotEmpty(message = "车辆使用性质不允许为空")
    private String useCharacter;
	/**车辆识别代号*/
	@Excel(name = "车辆识别代号", width = 15)
    @ApiModelProperty(value = "车辆识别代号")
	//@NotEmpty(message = "车辆识别代号不允许为空")
    private String vin;
	/**统一社会信用代码或所有人身份证号*/
	@Excel(name = "统一社会信用代码或所有人身份证号", width = 15)
    @ApiModelProperty(value = "统一社会信用代码或所有人身份证号")
    private String creditCode;
	/**发证机关*/
	@Excel(name = "发证机关", width = 15)
    @ApiModelProperty(value = "发证机关")
//	@NotEmpty(message = "发证机关不允许为空")
    private String issuingOrganizations;
	/**注册日期*/
	@Excel(name = "注册日期", width = 15, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "注册日期")
	@NotEmpty(message = "注册日期不允许为空")
    private String registerDate;
	/**发证日期*/
	@Excel(name = "发证日期", width = 15, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "发证日期")
	@NotEmpty(message = "发证日期不允许为空")
    private String issueDate;
	/**车辆能源类型*/
	@Excel(name = "车辆能源类型", width = 15, dicCode = "vehicle_energy_type")
	@Dict(dicCode = "vehicle_energy_type")
    @ApiModelProperty(value = "车辆能源类型")
//	@NotEmpty(message = "车辆能源类型不允许为空")
    private String vehicleEnergyType;
	/**核定载质量*/
	@Excel(name = "核定载质量", width = 15)
    @ApiModelProperty(value = "核定载质量")
//	@NotEmpty(message = "核定载质量不允许为空")
    private String vehicleTonnage;
	/**吨位,车辆总质量(保留两位小数，如整数的话，以.00 填充。小数点不计入总长)*/
	@Excel(name = "吨位,车辆总质量(保留两位小数，如整数的话，以.00 填充。小数点不计入总长)", width = 15)
    @ApiModelProperty(value = "吨位,车辆总质量(保留两位小数，如整数的话，以.00 填充。小数点不计入总长)")
//	@NotEmpty(message = "吨位,车辆总质量不允许为空")
    private String grossMass;
	/**道路运输证号(总质量 4.5 吨及以下普通货运车辆的，可填“车籍地 6 位行政区域代码+000000”)*/
	@Excel(name = "道路运输证号(总质量 4.5 吨及以下普通货运车辆的，可填“车籍地 6 位行政区域代码+000000)", width = 15)
    @ApiModelProperty(value = "道路运输证号(总质量 4.5 吨及以下普通货运车辆的，可填“车籍地 6 位行政区域代码+000000)")
//	@NotEmpty(message = "道路运输证号不允许为空")
    private String roadTransportNumber;
	/** 道路运输证(正面) */
	@Excel(name = " 道路运输证(正面) ", width = 15)
    @ApiModelProperty(value = " 道路运输证(正面) ")
//	@NotEmpty(message = "道路运输证(正面)不允许为空")
	private String roadTransportImg;
	/**道路运输证副页*/
	@Excel(name = "道路运输证副页", width = 15)
    @ApiModelProperty(value = "道路运输证副页")
//	@NotEmpty(message = "道路运输证副页不允许为空")
	private String roadTransportImg2;
	/**道路运输证过期时间*/
	@Excel(name = "道路运输证过期时间", width = 15, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "道路运输证过期时间")
//	@NotEmpty(message = "道路运输证过期时间不允许为空")
	private String roadTransportExpiredDate;
	/**经营许可证号*/
	@Excel(name = "经营许可证号", width = 15)
    @ApiModelProperty(value = "经营许可证号")
//	@NotEmpty(message = "道路运输证经营许可证号不允许为空")
	private String businessLicense;
	/**挂车牌照号*/
	@Excel(name = "挂车牌照号", width = 15)
    @ApiModelProperty(value = "挂车牌照号")
    private String trailerVehiclePlateNumber;

	/**创建人*/
	@ApiModelProperty(value = "创建人")
	private String createBy;

	/**更新人*/
	@ApiModelProperty(value = "更新人")
	private String updateBy;

	/**车辆照片(人和车和车牌)*/
	@Excel(name = "车辆照片(人和车和车牌)", width = 15)
	@ApiModelProperty(value = "车辆照片(人和车和车牌)")
	private String vehicleImg;

	/**是否挂靠(1表示是 0表示否)*/
	@Excel(name = "是否挂靠(1表示是 0表示否)", width = 15)
	@ApiModelProperty(value = "是否挂靠(1表示是 0表示否)")
	//@NotEmpty(message = "是否挂靠不允许为空")
	private java.lang.String izAffiliation;

	/**挂靠协议*/
	@Excel(name = "挂靠协议", width = 15)
	@ApiModelProperty(value = "挂靠协议")
	private java.lang.String affiliationAgreement;

	//------------- 辽宁税务新增字段 start---------------------------------------------------
	/**机动车登记证书编号*/
	@Excel(name = "机动车登记证书编号", width = 15)
	@ApiModelProperty(value = "机动车登记证书编号")
	private java.lang.String registCertNo;
	//------------- 辽宁税务新增字段 end---------------------------------------------------


	//------------- 快货运新增字段 start---------------------------------------------------
	/**车籍地（行驶证住址）*/
	@Excel(name = "车籍地（行驶证住址）", width = 15)
	@ApiModelProperty(value = "车籍地（行驶证住址）")
//	@NotEmpty(message = "车籍地（行驶证住址）不允许为空")
	private java.lang.String vehicleAddress;
	/**挂车车牌颜色代码*/
	@Excel(name = "挂车车牌颜色代码", width = 15, dicCode = "vehicle_plate_color_code")
	@Dict(dicCode = "vehicle_plate_color_code")
	@ApiModelProperty(value = "车牌颜色代码")
	private java.lang.String trailerVehiclePlateColorCode;
	/**业户名称 车辆道路运输证上的业户名称*/
	@Excel(name = "业户名称", width = 15)
	@ApiModelProperty(value = "业户名称")
//	@NotEmpty(message = "道路运输证业户名称不允许为空")
	private java.lang.String roadTransportName;
	//------------- 快货运新增字段 end---------------------------------------------------

	/**排放标准类型(1 国五，1国六)*/
	@Excel(name = "排放标准类型(1 国五，1国六)", width = 15)
	@ApiModelProperty(value = "排放标准类型(1 国五，1国六)")
	@Dict(dicCode = "emission_standard_type")
	private java.lang.String emissionStandardType;

	/**环保证书*/
	@Excel(name = "环保证书", width = 15)
	@ApiModelProperty(value = "环保证书")
	private java.lang.String environmentalCertificate;

	@Dict(dicCode = "examine_status")
	@ApiModelProperty(value = "审核状态(0待审核 1审核通过 2审核失败)")
	private java.lang.String examineStatus;


	/**挂车行驶证(正面)*/
	@ApiModelProperty(value = "挂车行驶证(正面)")
	private String trailerVehiclLicenseImg;

	/**挂车行驶证(副页)*/
	@ApiModelProperty(value = "挂车行驶证(副页)")
	private String trailerVehiclLicenseImg2;

	//Added at 2023-09-21 for 增加挂车道路运输证号以及挂车类型
	@ApiModelProperty(value = "挂车道路运输证号")
	private String trailerVehicleRoadTransportNumber;

	@ApiModelProperty(value = "挂车道路运输证图片")
	private String trailerVehicleRoadTransportImg;

	@ApiModelProperty(value = "挂车类型")
	private String trailerVehicleType;
	//Added end

	//智运宝设备号
	@ApiModelProperty(value = "智运宝设备号")
	private String vehicleDevice;

	@ApiModelProperty(value = "机动车登记证书")
	private String vehicleRegistration;

}
